﻿using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using NetDiskStorageWebApi.Configuration;
using NewsSevicer;
using NewsSevicer.Interface;
using System.Collections.Generic;

// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860

namespace NetDiskStorageWebApi.Controllers
{
   
    [Route("api/[controller]")]
    [ApiController]

    public class ValuesController : ControllerBase
    {
       private readonly SignSendJWTToken _signSendJWTToken;
        public ValuesController(SignSendJWTToken  signSendJWTToken) { 
        
            _signSendJWTToken = signSendJWTToken;
        }
        // GET: api/<ValuesController>
        [HttpGet]
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/<ValuesController>/5
        [HttpGet("getToeken")]
        public string Get(int id)
        {
           var token = _signSendJWTToken.GenerateJwtToken(id.ToString());
            return token;
        }

        // POST api/<ValuesController>
        [HttpPost]
        public void Post([FromBody] string value)
        {
        }

        // PUT api/<ValuesController>/5
        [HttpPut("{id}")]
        public void Put(int id, [FromBody] string value)
        {
        }

        // DELETE api/<ValuesController>/5
        [HttpDelete("{id}")]
        public void Delete(int id)
        {
        }
        // 每秒最多调用5次
        [ApiRateLimit(1)]
        [Authorize]
        [HttpGet("Test")]
        public string Test()
        {
            
            return "Test OK!";
        }
    }
}
